package cn.tedu.oopTestConstructor.cn.tedu;

import java.util.ArrayList;
import java.util.List;

/**
 * @author SWJ
 * @create 2021-06-18 15:16
 * 本类用来测试泛型的优点
 */
public class Generic1 {
    public static void main(String[] args) {
        /**泛型是怎么来的
         * 泛型是模拟数组的类型检查*/
        //创建一个String 类型的长度5的数组
        String a[] = new String[5];

//        a[0]=1.4;
//        a[2]=3.4;
//        a[3]='d';
        a[4] = "数组";
        a[1] = "数组2";
        /**2.泛型通常结合集合一起使用
         * 集合是一个存放数据的容器*/
        List list = new ArrayList();
        //List方法 是列表方法
        // ArrayList就是动态数组

        //注意导包
        list.add("数据");
        list.add(1);
        list.add(8.8);
        list.add('a');
        System.out.println(list);
        //[数据, 1, 8.8, a]通过打印查看集合的元素

        /**2.引入泛型 <?>*/
        /**泛型的好处：可以把报错的时机提前，在编译期就报错
         * 而不是运行后才抛出异常，
         * 在向集合中添加元素时候，先检查元素的数据类型，
         * 不是要求的类型编译失败*/
        List<String> list2 = new ArrayList<String>();
        list2.add("数据");
        System.out.println(list2);
//        list2.add(1);
//        list2.add(8.8);
//        list2.add('a');

        /**<type>如何写
         * 可以根据自己的需求设定类型，但是注意必须是引用类型
         * 不能是基本类型 不能int只能Integer
         * */
        List<Integer>list3=new ArrayList<Integer>();
        list3.add(100);
        list3.add(200);
        list3.add(300);
        System.out.println(list3);
        /**[100, 200, 300]*/

    }
}
